#pragma once

namespace TryEngine
{
    const int SCREEB_WIDTH(1280);
    const int SCREEN_HEIGHT(720);

    class Engine
    {
    public:
        
        ~Engine();
        Engine(const Engine&) = delete;
        Engine& operator=(const Engine&) = delete;

        static Engine& Ref()
        {
            static Engine instance;
            return instance;
        }

        void Quit();
        void Update();
        void Initialize();

        inline const bool Run() const {return m_Run;}
        inline GLFWwindow& Window()  {return *m_Window;}
        inline const float Width() const {return m_Width;}
        inline const float Height() const {return m_Height;}
    private:
        Engine();
    private:
        bool m_Run;
        GLFWwindow* m_Window;
        float m_Width,m_Height;
    };

    static Engine& Core = Engine::Ref();
}